/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package util.reporte;

import java.util.ArrayList;
import com.model.dao.orm.Key;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * @author Rdelacruz
 * @param <F>
 */
public class AbstractReporteMap<F extends Key>
extends AbstractReporte<F>
{
    private F filaTotal;
    
    private final Map<String,F> mapFilas = new HashMap<String,F>();//son las filas sumando 
        
    @Override
    public void addFila(F fila) {
        super.addFila(fila);
        mapFilas.put(fila.getKey(), fila);
    }
    
    //public F getFila(F fila)
    public F getFila(Key fila) {
        return mapFilas.get(fila.getKey());
    }      
    
    // FILA TOTAL
    public boolean soloContieneFilaTotal() {
        List<F> filas = super.getFilas();
        return filas.size()==1 && filas.get(0).getKey().equals(filaTotal.getKey()); 
    }
    
    @Override
    public final List<F> getFilas() {
        if(soloContieneFilaTotal()) {
            return new ArrayList<F>();//devuelve lista vacia
        }
        return super.getFilas();
    } 
    
    public void addFilaTotal(F filaTotal) {
        super.addFila(filaTotal);
        this.filaTotal = filaTotal;//no lo agrego al map porque filaTotal no es una fila sumando
    }
    
    public F getFilaTotal() {
        return filaTotal;
    }
    
}
